#include <iostream>

#include "mprpcapplication.h"
#include "friend.pb.h"

int main(int argc, char *argv[])
{
    // 程序启动，如果想要使用mprpc框架享受rpc服务，就必须要调用框架的初始化函数(只初始化一次)
    MprpcApplication::Init(argc, argv);

    // 演示远程调用发布的rpc方法
    fixbug::GetFriendListRpc_Stub stub(new MprpcChannel());

    // rpc请求参数
    fixbug::GetFriendListRequest req;
    std::cout << "请输入要查找用户id!\n";
    uint32_t id = 0;
    std::cin >> id;
    req.set_userid(id);

    // rpc响应参数
    fixbug::GetFriendListResponse resp;

    // 调用rpc方法
    MprpcController *controller = new MprpcController();
    stub.GetFriendList(controller, &req, &resp, nullptr);

    // 一次rpc调用完成
    if (controller->Failed())
    {
        std::cout << controller->ErrorText() << std::endl;
    }
    else
    {
        if (0 == resp.result().errorno())
        {
            std::cout << "rpc find friendList success!" << std::endl;
            int n = resp.friends_size();
            for(int i = 0; i < n; i++)
            {
                std::cout << "index: " << (i + 1) << " ---name: " << resp.friends(i) << std::endl;
            }
            
        }
        else
        {
            std::cout << "rpc login error: " << resp.result().errmsg() << std::endl;
        }
    }

    return 0;
}